//package com.jiegui.mqtt.send;
//
//import com.jiegui.common.config.RedisLockConfig;
//import com.jiegui.common.utils.StringUtils;
//import com.jiegui.common.utils.spring.SpringUtils;
//import com.jiegui.mqtt.config.MqttConfig;
//import lombok.extern.slf4j.Slf4j;
//import org.eclipse.paho.client.mqttv3.MqttException;
//import org.eclipse.paho.client.mqttv3.MqttMessage;
//import org.springframework.beans.factory.annotation.Value;
//import org.springframework.stereotype.Component;
//
//@Slf4j
//@Component
//public class MqttSendUtil {
//
//	private static String  pubTopic;
//
//	@Value("${mqtt.pubTopic:}")
//	public void setTopic(String topic){
//		pubTopic=topic;
//	}
//
//	/**
//	 * 向某个主题发布消息 默认qos：1
//	 *
//	 * @param sn:       设备sn
//	 * @param msg：发布的消息
//	 */
//	public static void pub(String sn, String[] msg) throws MqttException, InterruptedException {
//
//		RedisLockConfig redisLockConfig= SpringUtils.getBean(RedisLockConfig.class);
//		long time=System.currentTimeMillis();
//		redisLockConfig.lock(sn);
//
//		long time2=System.currentTimeMillis();
//		//System.out.println("获取锁时间为"+(time2-time)+",设备:"+sn);
//		//System.out.println("获取锁:"+sn);
//		msg[2]=Integer.toHexString( Integer.parseInt(msg[2]));
//		msg= StringUtils.makeChecksum(msg);
//		try {
//
//			MqttConfig mqttClient = SpringUtils.getBean(MqttConfig.class);
//			byte[] bs = new byte[msg.length];
//			for (int i = 0; i < msg.length; i++) {
//				bs[i] = (byte) Integer.parseInt(msg[i], 16);
//			}
//			MqttMessage mqttMessage = new MqttMessage();
//			mqttMessage.setQos(1);
//			mqttMessage.setPayload(bs);
//
//			String topic = pubTopic + sn;
//			mqttClient.publish(topic, mqttMessage);
//			log.info("{}发送的消息是:{}", topic, msg);
//			Thread.sleep(1500);
//			redisLockConfig.unlock(sn);
//			long time3=System.currentTimeMillis();
//			System.out.println("执行时间时间为"+(time3-time)+",设备:"+sn);
//
//		}catch (Exception e){
//			redisLockConfig.unlock(sn);
//			e.printStackTrace();
//		}
//	}
//
//
//	/**
//	 * 向某个主题发布消息
//	 *
//	 * @param sn:  设备sn
//	 * @param msg: 发布的消息
//	 * @param qos: 消息质量 Qos：0、1、2
//	 */
//	public static void pub(String sn, String msg, int qos) throws MqttException {
//		MqttConfig mqttClient = SpringUtils.getBean(MqttConfig.class);
//		MqttMessage mqttMessage = new MqttMessage();
//		mqttMessage.setQos(qos);
//		mqttMessage.setPayload(msg.getBytes());
//		String topic = pubTopic + sn;
//		mqttClient.publish(topic, mqttMessage);
//	}
//
//}
